package com.example.design.c.interpreter;

/**
 * 解释器模式
 */
public class InterpreterDemo {

    public static void main(String[] args) {

    }
}

//抽象表达式类
interface AbstractExpression {

    public void interpret(String info);//解释方法
}

//终结符表达式
class TerminalExpress implements AbstractExpression {

    @Override
    public void interpret(String info) {
        //对终结符表达式的处理
    }
}

//非终结符表达式
class NoterminalExpress implements AbstractExpression {

    private AbstractExpression exp1;
    private AbstractExpression exp2;

    @Override
    public void interpret(String info) {
        //对非终结符表达式的处理
    }
}

//环境类
class Context {
    private AbstractExpression exp;

    public Context() {
        //数据初始化
    }
    public void operation(String info) {
        //调用相关表达式类的解释方法
    }
}